package zmqserv

import (
	"github.com/hjl/db/utils"
	"github.com/hjl/db/zwrapper/broker"
	"github.com/hjl/db/zwrapper/zmqobj"
)

type MyWorker struct{} // 用于实现 回调接口

func StartServ() {
	//是否配置了开启 msyql 日志记录
	isopen := utils.GetInt("open_log_db")
	if isopen != 1 {
		return
	}

	// 获取 IPC 地址
	ipcAddr := utils.GetString("zmq_log_addr_db")
	if ipcAddr == "" {
		return
	}
	logpath := "../logdbzmq.log"

	// 创建 IPC 对象
	zobj := zmqobj.NewZmqObj(ipcAddr, logpath, &MyWorker{}) // 传入回调对象
	zobj.Start("sqlserver")
}

// 实现回调函数
func (worker *MyWorker) Do(strs []string) {
	funcName, argstr := strs[0], strs[1]
	if funcName == "log_data" {
		broker.Input2db_log(argstr)
	}
}
